package net.goutalk.glcs.module.oa.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * @Author: tanyujie
 * @Date: 2022/6/27 15:16
 */
@Data
public class UpdateScheduleDto {

    /**
     * 日程名称
     */
    @ApiModelProperty("日程ID")
    @NotNull(message = "日程ID不能为空！")
    private Long id;


    /**
     * 日程名称
     */
    @ApiModelProperty("日程名称")
    @NotBlank(message = "日程名称不能为空！")
    @Length(min = 1,max = 20,message = "日程名称最少2个字符，最多20个字符！")
    private String scheduleName;

    /**
     * 日程内容
     */
    @ApiModelProperty("日程内容")
    private String scheduleContent;

    /**
     * 类别
     */
    @ApiModelProperty("类别")
    @Length(min = 1, max = 50, message = "日程分类最多50个字符！")
    private String category;

    /**
     * 开始日期
     */
    @ApiModelProperty("开始日期")
    private LocalDateTime startDate;

    /**
     * 开始时间
     */
    @ApiModelProperty("开始时间")
    private String startTime;

    /**
     * 结束日期
     */
    @ApiModelProperty("结束日期")
    private LocalDateTime endDate;

    /**
     * 结束时间
     */
    @ApiModelProperty("结束时间")
    private String endTime;

    /**
     * 提前提醒
     */
    @ApiModelProperty("提前提醒")
    @Min(value = 0, message = "提前提醒必须大于0")
    private Integer early;

    /**
     * 邮件提醒
     */
    @ApiModelProperty("邮件提醒")
    @Min(value = 0, message = "邮件提醒必须大于0")
    private Integer isMailAlert;

    /**
     * 手机提醒
     */
    @ApiModelProperty("手机提醒")
    @Min(value = 0, message = "手机提醒必须大于0")
    private Integer isMobileAlert;

    /**
     * 微信提醒
     */
    @ApiModelProperty("微信提醒")
    @Min(value = 0, message = "微信提醒必须大于0")
    private Integer isWeChatAlert;

    /**
     * 日程状态
     */
    @ApiModelProperty("日程状态")
    @Min(value = 0, message = "日程状态必须大于0")
    private Integer scheduleState;

    /**
     * 排序码
     */
    @ApiModelProperty("排序码")
    @Min(value = 0, message = "排序码必须大于0")
    private Integer sortCode;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String description;
}
